using System.Data;
using System.Xml;

namespace Chaotic.DataBase.DataAccess
{
	public interface IDataAccess
	{
		DatabaseType DatabaseType { get; }

		IDbConnection DbConnection { get; }

		bool IsClosed { get; }

		string Owner { get; set; }

		IDbTransaction? BeginTransaction();

		void Open();

		void Close();

		int ExecuteNonQuery(CommandType commandType, string? commandText);

		int ExecuteNonQuery(string? commandText);

		int ExecuteNonQuery(string? commandText, QueryParameterCollection commandParameters);

		int ExecuteNonQuery(DataRow row, SqlStruct sqlStruct);

		int ExecuteNonQuery(CommandType commandType, string? commandText, QueryParameterCollection commandParameters);

		int ExecuteNonQuery(CommandType commandType, string? commandText, QueryParameterCollection commandParameters, DataRow row, SqlStruct sqlStruct);

		DataSet? ExecuteDataset(CommandType commandType, string? commandText);

		DataSet? ExecuteDataset(string? commandText);

		DataSet? ExecuteDataset(CommandType commandType, string? commandText, QueryParameterCollection commandParameters);

		DataSet? ExecuteDataset(string? commandText, QueryParameterCollection commandParameters);

		DataSet? ExecuteDataset(CommandType commandType, string? commandText, string tableName);

		DataSet? ExecuteDataset(string? commandText, string tableName);

		DataSet? ExecuteDataset(CommandType commandType, string? commandText, QueryParameterCollection commandParameters, string tableName);

		DataSet? ExecuteDataset(string? commandText, QueryParameterCollection commandParameters, string tableName);

		DataSet? ExecuteDataset(CommandType commandType, string? commandText, DataSet? ds);

		DataSet? ExecuteDataset(string? commandText, DataSet? ds);

		DataSet? ExecuteDataset(CommandType commandType, string? commandText, QueryParameterCollection commandParameters, DataSet? ds);

		DataSet? ExecuteDataset(string? commandText, QueryParameterCollection commandParameters, DataSet? ds);

		DataSet? ExecuteDataset(CommandType commandType, string? commandText, DataSet? ds, string tableName);

		DataSet? ExecuteDataset(string? commandText, DataSet? ds, string tableName);

		DataSet? ExecuteDataset(CommandType commandType, string? commandText, QueryParameterCollection commandParameters, DataSet? ds, string tableName);

		DataSet? ExecuteDataset(string? commandText, QueryParameterCollection commandParameters, DataSet? ds, string tableName);

		DataSet? ExecuteDataset(string? commandText, QueryParameterCollection commandParameters, DataSet? ds, int startRecord, int maxRecords, string tableName);

		IDataReader ExecuteReader(CommandType commandType, string? commandText);

		IDataReader ExecuteReader(string? commandText);

		IDataReader ExecuteReader(CommandType commandType, string? commandText, QueryParameterCollection commandParameters);

		IDataReader ExecuteReader(string? commandText, QueryParameterCollection commandParameters);

		object? ExecuteScalar(CommandType commandType, string? commandText);

		object? ExecuteScalar(string? commandText);

		object? ExecuteScalar(CommandType commandType, string? commandText, QueryParameterCollection commandParameters);

		object? ExecuteScalar(string? commandText, QueryParameterCollection commandParameters);

		XmlReader? ExecuteXmlReader(CommandType commandType, string? commandText);

		XmlReader? ExecuteXmlReader(string? commandText);

		XmlReader? ExecuteXmlReader(CommandType commandType, string? commandText, QueryParameterCollection commandParameters);

		XmlReader? ExecuteXmlReader(string? commandText, QueryParameterCollection commandParameters);
	}
}